/*
 * BaseEnemy.h
 *
 *  Created on: 04/02/2013
 *      Author: eusyar
 */

#ifndef BASEENEMY_H_
#define BASEENEMY_H_

#include "core/GameObject.h"
#include "component/Animation.h"
#include "component/Moviment.h"
#include "component/Sound.h"
#include <string>

using namespace std;
using namespace eats_core;

class BaseEnemy : public GameObject {
public:
	BaseEnemy(string canonical_name, string id, SDL_Surface * working, string animation_path, int _posX,  int _posY,int maxframe, int tileSize, int path);
	virtual ~BaseEnemy();

	bool setUp();
	bool update();

	int sufferAttack(int damage);

	/*
	bool event();
	bool render();
	bool tearDown();
	*/

	Animation * _animation;
	Moviment * _moviment;
	Sound_ * _sound;
	string _animation_path;
	SDL_Surface * _working_surface;

	int _heath;
	int _goldReward;
	int _path;

	virtual bool getMovimentRoute(int i) = 0;

protected:

	int _maxFrames, _tileSize;
	virtual bool onSetUp() = 0;

private:

	bool loadAndEnableAnimation();
	bool loadAndEnableMoviment();
	bool loadAndEnableSound();

};

#endif /* BASEENEMY_H_ */
